﻿using Microsoft.AspNetCore.Mvc;
using Configuration.ServerApi.Param;
using System.Threading.Tasks;

namespace Configuration.ServerApi.Service
{
    /// <summary>
    /// IExperimentService
    /// </summary>
    public interface IExperimentService
    {
        /// <summary>
        /// 检查实验任务队列
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> CheckExperimentQueue();

        /// <summary>
        /// 生成实验任务编号
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> CreateExperimentNumber();

        /// <summary>
        /// 获取实验统计数据
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentStatistics();

        /// <summary>
        /// 获取当前实验预计完成时长
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetThisExpectedCompletionTime();

        /// <summary>
        /// 获取累计实验工作时长
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> Accumulateworkduration();

        /// <summary>
        /// 获取实验模板列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentTemplateList(SearchModel param);

        /// <summary>
        /// 获取实验模板详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentTemplateDetail(SearchModel param);

        /// <summary>
        /// 提交实验模板信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SubmitExperimentTemplate(UpdateModel param);

        /// <summary>
        /// 批量删除实验模板信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> DelExperimentTemplate(UpdateModel param);

        /// <summary>
        /// 更新实验模板顺序
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateExperimentTemplateSort(UpdateModel param);

        /// <summary>
        /// 获取实验模板关联配置列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentTemplateConfigList(SearchModel param);

        /// <summary>
        /// 获取实验模板关联配置详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentTemplateConfigDetail(SearchModel param);

        /// <summary>
        /// 提交实验模板关联配置信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SubmitExperimentTemplateConfig(UpdateModel param);

        /// <summary>
        /// 批量删除实验模板关联配置信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> DelExperimentTemplateConfig(UpdateModel param);

    }
}
